package indi.zhifa.recipe.bailan.framework.common.util;

import indi.zhifa.recipe.bailan.framework.common.entity.enums.ContentTypeEnum;
import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * Description:
 * @Copyright: Copyright (c) 2020-2028 北京华咨电力科技发展有限公司 All rights reserved.
 * @author: 褚智勇(hataksumo@163.com)
 * @date:  2021/12/18 18:11
 */
public class ContentTypeUtil {
    static Map<String, ContentTypeEnum> contentTypeMap;
    static{
        contentTypeMap = new HashMap<>(ContentTypeEnum.values().length);
        ContentTypeEnum[] contentEnums = ContentTypeEnum.values();
        for(ContentTypeEnum theEnum : contentEnums){
            contentTypeMap.put(theEnum.getExtension(),theEnum);
        }
    }

    /**
     * 通过扩展名获取枚举类型
     *
     * @param extension 扩展名
     * @return 枚举类
     */
    public static ContentTypeEnum getByExtension(String extension) {
        if (!StringUtils.hasLength(extension)) {
            return null;
        }
        return contentTypeMap.get(extension);
    }

    /**
     * Content-Type常用对照
     * 根据后缀获取Mime
     *
     * @param fileType 扩展名
     * @return mime类型
     */
    public static String getContentType(String fileType) {
        ContentTypeEnum mimeTypeEnum = getByExtension(fileType);
        if (mimeTypeEnum != null) {
            return mimeTypeEnum.getMimeType();
        }
        return "application/octet-stream";
    }

}
